public class HanoiGame {
/*
* 第一个参数用来放给的盘子数，
 *第二个参数用来放起始位置
 *第三个参数用来放中转位置
 *第四个参数用来放最终位置
 * */
    public static void hanoi(int n,char pose1,char pose2,char pose3){ // 3 'A' 'B' 'C'
        if(n == 1){
            move(pose1,pose3);//若只有一个盘子，只需从起始位置移到最终位置这1步。
            // 这里的pose1不一定等于'A',pose3不一定等于'C'；随着递的次数的不一样，对应不同的值。
            return;
        }
        hanoi(n-1,pose1,pose3,pose2);//这n-1个盘子是要借助 C 移动到 B 上的。
               //所以 对于这n-1个盘子来说，起始位置是'A'，中转位置是'C',最终位置是'B'
        move(pose1,pose3);
        hanoi(n-1,pose2,pose1,pose3);
    }
    /*
    * 第一个参数用来放起始位置
    * 第二个参数用来放最终位置 */
    public static void move(char pose4,char pose5){
        System.out.println(pose4+" -> "+ pose5);

    }
    public static void main(String[] args) {
        hanoi(3,'A','B','C');

    }
}
